package com.shujia.wyh.day25;

public class TicketWindow4 implements Runnable{
    //由于这个类的对象只创建一次，也就只有一个对象，就只有一个tickets变量
    private int tickets = 300; // 1
    private Object obj = new Object();

    @Override
    public void run() {

        while (true) {
            //窗口1，窗口2
            synchronized (obj){
                if (tickets > 0) {
                    //窗口1，窗口2，窗口3
                    //为了模拟更加符合现实生活卖票的场景，我们加入延迟操作
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }

                    //窗口1，窗口2
                    System.out.println(Thread.currentThread().getName() + "正在出售第" + (tickets--) + "张票。。。");
                    //窗口1正在出售第100张票。。。
                    //窗口2正在出售第100张票。。。
                    //...
                    //窗口1正在出售第1张票
                    //窗口2正在出售第0张票
                    //窗口3正在出售第-1张票
                }
            }

        }
    }
}
